/* 
 * File:   ErrorCommand.cpp
 * Author: Bram
 * 
 * Created on January 21, 2013, 11:54 PM
 */

#include "ErrorCommand.h"


ErrorCommand ErrorCommand::cInstance("ERROR");

ErrorCommand::ErrorCommand(const char* szID )
	: Command( szID )
{
}

ErrorCommand::ErrorCommand() : Command() {
    setName("ERROR");
}

ErrorCommand::ErrorCommand(const ErrorCommand& orig) {
}

ErrorCommand::~ErrorCommand() {
}

Command* ErrorCommand::createNew()
{
    ErrorCommand * cmd = new ErrorCommand();
    cmd->setName("ERROR");
    return cmd;
}

//static
Command* ErrorCommand::initializeWithErrorMessage(const string& errMsg)
{
    ErrorCommand * cmd = new ErrorCommand();
    cmd->setName("ERROR");
    cmd->addParameter(errMsg);
    return cmd;
}

bool ErrorCommand::isValid()
{
    return ((getName().compare("ERROR") == 0) && Command::isValid());
}

//DE BEDOELING IS DAT HIJ EEN ERROR COMMAND ABSOLUUT NOOIT HEEN EN WEER GAAT STUREN!

//hier ontvangt de server het commando van de client
void ErrorCommand::ExcecuteServerReceiveCommand(TcpSocket* dasSocket, queue<Command *>& commandQueue)
{
    cout << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 001" << endl;
    dasLog << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 001" << endl;
}

//hier komt de server nadat hij een bericht van de client heeft ontvangen met een dir request
//hij moet dus wat terug gaan sturen, hij past dus het huidigge commando aan en stuurt die op
void ErrorCommand::ExcecuteServerSendCommand(TcpSocket* dasSocket, queue<Command *>& commandQueue)
{
    cout << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 002" << endl;
    dasLog << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 002" << endl;
}

//dit wordt uitgevoerd als de client het naar de server HEEFT VERSTUURD 
//en gaat wachten op een antwoord!
void ErrorCommand::ExcecuteClientReceiveCommand(TcpSocket* dasSocket, queue<Command *>& commandQueue)
{
    string errOutput;
    GetFullCout(errOutput, true); //krijgt de volledige error, op 1 regel
    cout << "ERROR in '" << __FILE__ << "' - '" << __FUNCTION__  << "()': " << errOutput << endl;
    //cout << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 003" << endl;
    //dasLog << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 003" << endl;
}

//dit wordt uitgevoerd als de client het ingetypte bericht naar de server verstuurd
void ErrorCommand::ExcecuteClientSendCommand(TcpSocket* dasSocket, queue<Command *>& commandQueue)
{
    string errOutput;
    GetFullCout(errOutput, true); //krijgt de volledige error, op 1 regel
    cout << "ERROR in '" << __FILE__ << "' - '" << __FUNCTION__  << "()': " << errOutput << endl;
    //cout << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 004" << endl;
    //dasLog << "Should never reach this! --> '" << __FILE__ << "' - '" << __FUNCTION__  << "()', ERR 004" << endl;
}

